package com.yzt.conf;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;

import io.swagger.annotations.Api;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Config {

	@Bean
	public Docket defaultDocker() {
		return new Docket(DocumentationType.SWAGGER_2)//
				.apiInfo(apiInfo()).groupName("默认组").select()//
//				.apis(RequestHandlerSelectors.basePackage("com.yzt.user.controller"))//
				.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//
				.paths(PathSelectors.any())//
				.build();
	}


	/**
	 * name:开发者姓名 <br>
	 * url:开发者网址 <br>
	 * email:开发者邮箱 <br>
	 *
	 * @return
	 */
	private ApiInfo apiInfo() {
		Contact contact = new Contact("Y", "http://127.0.0.1", "734917343@qq.com");
		return new ApiInfoBuilder().title("框架整合APIs")// 标题
				.description("框架整合API接口文档")// 文档接口的描述
				.contact(contact).version("1.0.0")// 版本号
				.build();
	}

}